import java.util.HashMap;
import java.util.Map;

public class Fruit_in_basket {
    class Solution {
        public int totalFruit(int[] fruits) {
            int left =0;
            int right =0;
            int ret = 0;
            Map<Integer,Integer> hash = new HashMap<>();
            for( ;right<fruits.length;right++){
                int in=fruits[right];
                hash.put(in,hash.getOrDefault(in,0)+1);
                while(hash.size()>2){
                    int out = fruits[left];
                    hash.put(out,hash.get(out)-1);
                    if(hash.get(out)==0){
                        hash.remove(out);
                    }
                    left++;
                }
                ret = Math.max(ret,right-left+1);
            }
            return ret;
        }
    }
}
